package com.zkthink.ceres.pay.wechat.v3.entity.request.profitsharing;

import com.alibaba.fastjson.annotation.JSONField;
import lombok.*;
import lombok.experimental.Accessors;

/**
 * <p>
 * <p>
 * 合单关闭单
 * * 参考文档：https://pay.weixin.qq.com/wiki/doc/apiv3/wxpay/pay/combine/chapter3_3.shtml
 *
 * @author vivi.huang
 * @since 2020/5/17
 */
@Data
@Builder(builderMethodName = "newBuilder")
@NoArgsConstructor
@AllArgsConstructor
@Accessors(chain = true)
public class Receivers  {

    private static final long serialVersionUID = -8100791351891543014L;


    /**
     * 分账接收方类型	type	string（32）	否	分账接收方类型，枚举值：
     * MERCHANT_ID：商户
     * PERSONAL_OPENID：个人
     * 示例值：MERCHANT_ID
     */
    @JSONField(name = "type")
    private String type;

    /**
     * 分账接收方账号	receiver_account	string （64）	是	分账接收方账号：
     * 类型是MERCHANT_ID时，是商户ID
     * 类型是PERSONAL_OPENID时，是个人openid，openid获取方法
     * 示例值：1900000109
     */
    @JSONField(name = "receiver_account")
    private String receiver_account;

    /**
     * 分账接收商户号	receiver_mchid	string(32)	否	接收方类型为MERCHANT_ID时，填入微信支付分配的商户号。
     * 如果填写了字段receiver_account，则无需填写本字段
     * 示例值：1900000109
     */
    @JSONField(name = "receiver_mchid")
    private String receiverMchid;

    /**
     * 分账金额	amount	int	是	分账金额，单位为分，只能为整数，不能超过原订单支付金额及最大分账比例金额。
     * 示例值：190
     */
    @JSONField(name = "amount")
    private String amount;

    /**
     * 分账描述	description	string(80)	是	分账的原因描述，分账账单中需要体现。
     * 示例值：分给商户1900000109
     */
    @JSONField(name = "description")
    private String description;

    /**
     * 分账结果	result	string(32)	是
     * 分账结果，枚举值：
     * PENDING：待分账
     * SUCCESS：分账成功
     * ADJUST：分账失败待调账
     * RETURNED：已转回分账方
     * CLOSED：已关闭
     * 示例值：SUCCESS
     */
    @JSONField(name = "result")
    private String result;

    /**
     * 完成时间	finish_time	string(64)	是	分账完成时间，遵循rfc3339标准格式，格式为YYYY-MM-DDTHH:mm:ss:sss+TIMEZONE，YYYY-MM-DD表示年月日，T出现在字符串中，表示time元素的开头，HH:mm:ss:sss表示时分秒毫秒，TIMEZONE表示时区（+08:00表示东八区时间，领先UTC 8小时，即北京时间）。例如：2015-05-20T13:29:35.120+08:00表示，北京时间2015年5月20日 13点29分35秒。
     * 示例值： 2015-05-20T13:29:35.120+08:00
     */
    @JSONField(name = "finish_time")
    private String finishTime;

    /**
     * 分账失败原因	fail_reason	string(32)	否	分账失败原因，枚举值：
     * ACCOUNT_ABNORMAL：分账接收账户异常
     * NO_RELATION：分账关系已解除
     * RECEIVER_HIGH_RISK：高风险接收方
     * 示例值：NO_RELATION
     */
    @JSONField(name = "fail_reason")
    private String failReason;

    /**
     * 分账接收方账号	receiver_account	string （64）	是	分账接收方账号：
     * 类型是MERCHANT_ID时，是商户ID
     * 类型是PERSONAL_OPENID时，
     */
    @JSONField(name = "receiver_account")
    private String receiverAccount;




}